from androidhelper import Android
import time
 
ad = Android()
# 已读短信数目
smsCount = 0
# 上一次读取短信的最大时间
date = ''
# 获取最大时间
tempDate = ''
# 循环遍历读取短信
while True:
    # 判断是否有新的短信，如没有就退出本次循环
    if smsCount == ad.smsGetMessageCount(True).result:
        continue
    # 读取收件箱的短信，False读取所有，True读取未读短信
    sms_data = ad.smsGetMessages(True, 'inbox')
    sms_list = sms_data.result
    for sms in sms_list:
        # 每条短信之间间隔1秒
        time.sleep(1)
 
        # 如果当前短信的时间内容小于等于上次的时间，则退出本次循环
        if sms['date'] <= date:
            continue
        else:
            tempDate = sms['date']
        #输出处理短信的时间
        print("短信的时间：" + sms['date'])
        # 将当前已读的收件箱短信条数保存，作为后续判断是否有收到新短信的依据
        smsCount = ad.smsGetMessageCount(True).result
        with open('/storage/emulated/0/sms/sms.txt', 'w') as f:
            # 将短信内容写入文件，覆盖式写入
            f.write(sms['body'])
            continue
    #更新date为最新一条短信的时间
    date = tempDate
    #每次循环间隔1秒
    time.sleep(1)
